import {observable, makeAutoObservable, action} from 'mobx';
import {request} from '../../utils/request';
import Loading from '../../components/widget/Loading';

// export default class ArticleDetailStore {

//     // 声明一个可观察的变量，用于存储文章详情
//     @observable detail: Article = {} as Article;

//     // 请求文章详情
//     requestArticleDetail = async (id: number) => {
//         // 显示加载框
//         Loading.show();
//         try {
//             // 请求参数
//             const params = {
//                 id: id,
//             };
//             // 发起请求
//             const { data } = await request('articleDetail', params);

//             // 将请求到的数据赋值给detail
//             this.detail = data || {};

//         } catch (error) {
//             console.log(error);
//         } finally {
//             // 隐藏加载框
//             Loading.hide();
//         }
//     }
// }
class ArticleDetailStore {
  detail: Article;
  constructor() {
    makeAutoObservable(this);
    this.detail = {} as Article; // 初始化为 null
  }

  @action
  // 请求文章详情
  requestArticleDetail = async (id: number) => {
    // 显示加载框
    Loading.show();
    try {
      // 请求参数
      const params = {
        id: id,
      };
      // 发起请求
      const {data} = await request('articleDetail', params);

      // 将请求到的数据赋值给detail
      this.detail = data || {};
    } catch (error) {
      console.log(error);
    } finally {
      // 隐藏加载框
      Loading.hide();
    }
  };
  @action
  clearArticleDetail = () => {
    if (this.detail) {
      this.detail = {} as Article;
    }
  };
}
export default new ArticleDetailStore();
